bitkeeper revision 1.518 (3f8c89edP5chDaj1mr0mM5bVQRlRkg)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 14 Oct 2003 23:42:37 +0000 (23:42 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 14 Oct 2003 23:42:37 +0000 (23:42 +0000)
memory.c:
  Fix bug in new LDT shadow mapping code.

xen/common/memory.c

index c9fd39bd315abf03e7c5462dfb8af961f337e8e2..f6fe2f4f38b4eca0787cab423306c5d17e096fb0 100644 (file)
@@ -215,7 +215,7 @@ void __init init_frametable(unsigned long nr_pages)
 
 static void __invalidate_shadow_ldt(struct task_struct *p)
 {
-    int i, cpu = smp_processor_id();
+    int i, cpu = p->processor;
     unsigned long pfn;
     struct pfn_info *page;
     
@@ -289,7 +289,7 @@ int map_ldt_shadow_page(unsigned int off)
     /* Success! */
     get_page_type(page);
     get_page_tot(page);
-    p->mm.perdomain_pt[l1_table_offset(off)+16] = mk_l1_pgentry(l1e|_PAGE_RW);
+    p->mm.perdomain_pt[off+16] = mk_l1_pgentry((l1e&PAGE_MASK)|_PAGE_RW);
     p->mm.shadow_ldt_mapcnt++;
 
     ret = 0;